home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Commodore Disc 33
/
Commodore_Disc_33_19xx_-_de.d64
/
super racer
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-10-26
|
7KB
|
248 lines
0 dim lv(455),zeit$(100),ns$(100):sr=0
1 print"":gosub11000:data0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
2 data0,0,0,0,0,0,0,0,0,127,30,0,134,184,3,255
3 data240,15,255,224,31,255,240,63,255,248,14,1,192,4,0,128
4 data0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,220
5 fori=704to767:readm:pokei,m:nexti
6 v=53248:pokev+23,0
7 pokev+29,1:pokev+39,5
8 pokev+0,156:pokev+1,85
9 poke2040,11:poke53280,0:poke53281,0
10 if test=1 then 38
12 pokev+21,1:print "[147] [169]super racer[223][146] "
15 print "[155] von nicolas engel"
20 print " und
25 [153] " frank arensmeier
26 print "[159] hi-score : ";ns$(1);" [146]"
27 print " zeit : ";
28 print left$(zeit$(1),2);":";mid$(zeit$(1),3,2);":";right$(zeit$(1),2);" [146]"
29 print"[154][169] space = spiel [223][146]"
30 print" f1 = editor [146]"
31 print"[223] f7 = hi-scores [146][169]"
32 get t$:if t$="" then 32
33 if t$=" " then38
34 if t$="[133]" then15000
35 if t$="[136]" then16000
36 goto 32
38 rem --- data rennwagen ---
39 poke v+21,0:poke v+1,0
40 data0,0,0,0,0,0,0,36,0,0,36,0,28,36,56,31
41 data90,248,28,219,56,0,102,0,0,126,0,1,255,128,0,255
42 data0,0,102,0,0,66,0,28,195,56,31,255,248,28,255,56
43 data0,126,0,7,255,224,7,255,224,0,126,0,0,60,0,220
50 fori=704to767:readm:pokei,m:nexti
55 pokev+29,1:pokev+39,0
65 poke2041,13:poke53281,5:pokev+23,1
67 if test<>1 then gosub 10000
69 rem --- motor geraeusch ---
70 si=54272:x=155
71 fori=1to24:pokesi+i,0:nexti
72 pokesi+24,15:pokesi+6,240:pokesi,x:pokesi+5,8:pokesi+23,240:pokesi+4,129
75 poke v+21,1:print"[145]";
76 fori=1to24:print spc(14);st$:nexti
80 for i=1 to 55:for t=1 to 60:nextt
85 poke v+1,i:next i:pokesi,100:q=0
90 q=q+1:print"[144][188] start [190]"
95 fori=1to200:nexti
100 print"[144][188] [190]"
105 fori=1to200:nexti
106 ti$="000000"
110 ifq<>6thengoto90
115 print "";spc(14+lv(b));st$:x=156:so=150:w=150:e=peek(v+31):k=1
120 p1=peek(56320)
125 b=b+1:r=r+1
130 if (p1 and 8)=0 then x=x+4
135 if (p1 and 4)=0 then x=x-4
140 if (p1 and 1)=0 then w=w+5:so=so-5
145 if (p1 and 2)=0 then w=w-5:so=so+5
147 if peek(v+31)<>0 thengosub300:end
150 if x=255 then x=x-1
151 if w=255 then w=w-5
152 if w=0 then w=w+5
153 for s=100 to so:nexts
154 if r=25 then print spc(33);"[144]";k;"km[145]":r=1:k=k+1
155 poke v+0,x
156 poke si,w
160 if b=a then goto 335
165 print spc(14+lv(b));st$
170 goto 120
299 rem --- crash geraeusch ---
300 si=54272
305 fori=1to24:pokesi+i,0:next
310 pokesi+24,2:pokesi+6,255:pokesi+4,129:pokesi+13,255:pokesi+11,129
315 pokesi+1,0:pokesi+5,0:pokesi+24,15:pokesi+1,1:pokesi+5,11:pokesi+6,0
317 poke v+21,0
320 print"[144] [206][194][183][194][194][183][199][207][183][160][180] [170]
321 [153]" (NULL) -lenexppeeklenchr$sgn (NULL)andsqr
322 print" [205] [194] [194][194] [199][183][183][180][180] [170]
323 [153]" (NULL)peek peekpeek chr$andandsgnsgn +
325 fori=1 to 200
326 poke 53281,i
327 nexti:poke 53281,5:forz=1to1000:nextz
328 if test=1 then goto 17020
330 gosub 15395:restore:b=0:sr=0:goto1
331 if ta<1 then ta=1:
335 fori=1to14:print spc(14+lv(b-1));st$:nexti:zt$=ti$:sr=sr+1
336 print spc(13+lv(b));"[144]zeit:";
337 print left$(zt$,2);":";mid$(zt$,3,2);":";right$(zt$,2)
338 if val(zt$)<val(zeit$(sr)) then c=1
400 print spc(15+lv(b));"[144][175][175] [175] [175][175] [175]
405 [153] [166]14[170]lv(b));" (NULL) peek (NULL) left$
410 print spc(14+lv(b));" [206] [194] [180] [200]
415 [153] [166]14[170]lv(b));" usrusr usr usrusr usrusrusr
416 for i=55 to 255
417 for t=100 to 70:next t:poke v+1,i
418 next i
420 poke si,0
500 fori=1 to 200
505 poke 53281,i
510 nexti:poke 53281,5
515 sc=sc+(l*100):za=za+1
520 if l=6 then 10090
525 if ta<1 then ta=1:tr=tr-1
530 if ta<1 then ta=1
535 si=54272:s2=54279:s3=54286
536 pokesi+4,0:pokes2+4,0:pokes3+4,0
537 pokesi+5,16*0+2:pokesi+6,16*15+12
538 pokes2+5,16*0+2:pokes2+6,16*15+12
539 pokes3+5,16*0+2:pokes3+6,16*15+12
540 pokesi+23,0:pokesi+24,15:pokesi,38:pokesi+1,15:pokes2,154:pokes2+1,21:pokes3,177
541 pokes3+1,25:pokesi+4,33:fori=0to400:next:pokes2+4,33:fori=0to400:next:pokes3+4,33
542 fori=0to500:next:pokes1+4,32:pokes2+4,32:pokes3+4,32:pokesi+22,4
543 pokesi+21,226
544 pokesi+4,0
550 forz=1to1500:nextz:poke 53281,0
551 if test=1 then 17020
552 if c<>1 then goto 575
555 if c=1 then print "[147]";spc(12);"neuer hi-score !!":zeit$(sr)=zt$
560 print "bitte geben sie ihren namen ein !":poke 19,64
565 input "-----[157][157][157][157][157]";ns$(sr):poke 19,0
570 gosub 12000:poke53281,5:poke v+0,156:c=0
575 if sr<>lv then gosub 10000:b=0:q=0:pokev+0,156:poke53281,5:goto69
580 sr=0:poke53281,0:print "[147]ende der strecken !"
585 foro=1to1500:restore:goto1
10000 rem --- lev-loader ---
10001 print "[147]":na$="lev"+str$(sr+1)
10010 open 2,8,2,na$+",s,r"
10017 input#2,a
10030 for i1=1 to a
10035 input#2,lv(i1)
10045 nexti1
10050 close2
10055 return
11000 rem --- hi-score-loader ---
11010 open 2,8,2,"hi-score,s,r"
11015 input#2,lv
11017 for i=1 to lv
11020 input#2,zeit$(i)
11021 input#2,ns$(i)
11022 next i
11023 input#2,st$
11025 close2: return
12000 rem --- hi-score-saver ---
12010 open 2,8,2,"@:hi-score,s,w"
12015 print#2,lv
12017 fori=1to lv
12020 print#2,zeit$(i)
12021 print#2,ns$(i)
12022 next i
12023 print#2,st$
12025 close2:return
15000 rem --- editor ---
15005 pokev+21,0:print""
15010 print "[147]* f1 * strecke editieren"
15015 print "* f3 * strecke speichern"
15017 print "* f5 * rennstrecke ansehen"
15019 print "* f6 * rennstrecke ausprobieren"
15020 print "* f7 * strecke loeschen"
15022 print "* f8 * zurueck"
15025 get t$:if t$="" then 15025
15030 if t$="[133]" then 15100
15035 if t$="[134]" then 15150
15037 if t$="[135]" then 15220
15039 if t$="[139]" then 17000
15040 if t$="[136]" then 15250
15042 if t$="[140]" then restore:goto1
15050 goto 15025
15100 print "[147] e=ende";
15101 print "[145]";spc(6);st$;:sx=0
15102 if sl=0 then 15105
15103 print:for o=1tosl:print spc(14+lv(o));st$:nexto:sx=lv(o)
15105 p2=peek(56320)
15107 get s$:if s$="e" then print"[147]":foro=0to22:lv(o+sl)=sx:nexto:goto15010
15110 if(p2 and 8)=0 then sx=sx+1
15115 if(p2 and 4)=0 then sx=sx-1
15120 if(p2 and 16)=0 then sl=sl+1:print "";
15125 if sx=-13 then sx=-12
15126 if sl=423 then print"[147]strecke komplett !":foro=0to22:lv(o+sl)=sx:nexto
15127 if sl=423 then lv(sl)=sx:goto15010
15128 if sx=10 then sx=sx-1
15129 if(p2 and 16)=0 then 15140
15130 print "[145]";:for i=1 to 39:print " ";:nexti
15132 print chr$(13);"[145]";
15135 print spc(14+sx);st$:goto 15105
15138 goto 15105
15140 lv(sl)=sx:print"[145]";:foro=1to300:nexto
15145 f=0:poke211,34:sys58640:print"[145]";423-sl:poke211,40:sys58640
15147 print "";:goto 15135
15150 if sl=0 then print"[147]keine bahn vorhanden !":foro=1to1000:nexto:goto 15010
15155 print "[147]** speichern **"
15160 lv=lv+1:na$="lev"+str$(lv):gosub 12000
15165 sl=sl+22:open 2,8,2,na$+",s,w"
15170 print#2,sl
15175 fori1=1tosl
15180 print#2,lv(i1)
15185 nexti1
15190 close2:print spc(9);"level gespeichert !":for o=1to1200:nexto:goto 15010
15220 rem --- anzeigen ---
15225 if sl=0 then print"[147]keine bahn vorhanden !":foro=1to1000:nexto:goto 15010
15230 print"[147]":for o=1 to sl:get e$:if e$="e" then goto 15237
15232 print spc(14+lv(o));st$
15233 for p=1 to 100:next p
15235 next o
15237 print "";spc(16+lv(o));"e n d e"
15240 get e$:if e$="" then 15240
15245 print "[147]":goto 15010
15250 rem --- loeschen ---
15255 if sl=0 then print"[147]keine strecke im speicher !"
15257 if sl=0 then foro=1to1000:nexto:goto15010
15260 for o=1tosl
15265 lv(o)=0:nexto:foro=1to600:nexto:print "[147]strecke geloescht !"
15270 foro=1to1000:nexto:sl=0:goto15010
15395 rem --- game-over ---
15400 data0,0,0,0,0,0,121,199,30,130,42,160,130,42,176,154
15401 data168,160,138,40,160,114,40,158,0,0,0,0,0,0,0,0
15402 data0,114,19,206,138,20,17,138,22,30,137,36,17,137,36,17
15403 data112,195,209,0,0,0,0,0,0,0,0,0,0,0,0,220
15410 fori=704to767:readm:pokei,m:nexti
15415 v=53248:pokev+23,0
15420 pokev+21,1:pokev+39,1:pokev+29,1
15425 pokev+0,156:pokev+1,85
15426 print "[147]":poke 53280,0:poke 53281,0
15427 print "":for i=1 to 3
15428 print " [146]":next i:print"[163][163][163][163][163][163][163][163][163]"
15430 for i=1 to 3
15435 poke v+21,0
15440 for i2=1 to 350:next i2
15445 poke v+21,1
15447 for i2=1 to 350:next i2
15450 next i:return
16000 print "[147]":poke v+21,0
16005 print "level zeit name"
16010 print "----------------------------------------"
16015 for o=1 to lv
16020 print "";o;:poke211,15:sys58640
16025 print left$(zeit$(o),2);":";mid$(zeit$(o),3,2);":";right$(zeit$(o),2);
16030 poke 211,30:sys58640:print ns$(o)
16035 next o:print""
16040 print spc(14);">> taste <<"
16045 get e$:if e$="" then 16045
16050 print "[147]":pokev+21,1:goto 10
17000 rem --- ausprobieren ---
17005 if sl=0 then print"[147]keine strecke im speicher !"
17010 if sl=0 then foro=1to1000:nexto:goto15010
17015 print"[147]":a=sl+22:test=1
17016 for o=1to22:lv(o+sl)=lv(sl):nexto
17018 restore:goto 5
17020 poke53281,0:test=0:a=0:b=0:goto 15000